Graficacion en ggplot2-ploty

Autor/a

Irina Pérez

Introcucción

Este documento contiene visualización de datos elaborado con lo paquetes ggplot2 y plotly de R.

carga de paquetes

library(tidyverse)
library(plotly)
library(DT)
library(gapminder)
library(ggthemes)
library(hrbrthemes)

Carga de Datos

mpg

Código
# Despliegue de los datos mpg
 mpg |>
  datatable(
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

diamonds

Código
# Carga de datos de diamonds
diamonds |>
  datatable(
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

gapminder

Código
# Carga de datos de gapminder
gapminder |>
  filter(year == 2007) |>
  datatable(
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

Covid

Código
# Carga del archivo CSV de entrada en un dataframe
# con la función read_delim() de readr
covid_general <-
  read_delim(
    file = "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2023-i/main/datos/ministerio-salud/covid/05_30_22_CSV_GENERAL.csv",
    col_select = c(
      "FECHA",
      "positivos",
      "activos",
      "RECUPERADOS",
      "fallecidos",
      "nue_posi",
      "nue_falleci",
      "salon",
      "UCI"
    )
  )

# Cambio de nombre de columnas
covid_general <-
  covid_general |>
  rename(
    fecha = FECHA,
    recuperados = RECUPERADOS,
    nuevos_positivos = nue_posi,
    nuevos_fallecidos = nue_falleci,
    uci = UCI
  )

# Cambio de tipo de datos de la columna fecha, de str a date
covid_general <-
  covid_general |>
  mutate(fecha = as.Date(fecha, format = "%d/%m/%Y"))

# Tabla de datos de COVID generales
covid_general |>
  datatable(
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

delitos

Código
# Carga de datos
delitos_2022 <-
  read_delim(
    file = "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2023-i/main/datos/oij/estadisticas-policiales/estadisticaspoliciales2022.csv"
  )

# Tabla de datos
delitos_2022 |>
  datatable(
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

Conceptos basicos de graficacion

Todo gráfico rn ggplot2 tiene 3 componentes

  1. Datos (datafram).
  2. Un mapeo (asociacion) de las variabls el conjunto de datos on las propiedades visuales del grafico: ej x, eje y, tamaño, forma, color, etc. (funvion aes())
  3. Una o vari capas de geometrias: puntos, barra, caja, histogramas, etc. (geom_point(), deo_box(), geom_smooth())
Código
# forma basica
ggplot(data = mpg) + 
  geom_point(mapping = aes(x = displ, y = hwy))

Código
# forma con pipes
mpg |>
  ggplot(aes(x = displ, y = hwy)) +
        geom_point()

Código
# Variables adiciononales
mpg |>
  ggplot(aes(x = displ, y = hwy, color = class)) +
        geom_point()

Código
# Variables adiciononales-forma
mpg |>
  ggplot(aes(x = displ, y = hwy, shape = class)) +
        geom_point()

Código
# Gráfico de dispersión de cilindrada vs millas por galón en autopista
# con formas y colores correspondientes al tipo de automóvil
mpg |>
  ggplot(aes(x = displ, y = hwy, shape = class, color = class)) +
  geom_point() +
  scale_shape_manual(values = c(0, 1, 2, 3, 4, 5, 6)) +
  scale_color_manual(values = c("red", "blue", "green", "purple", "orange", "brown", "pink"))

Código
# Gráfico de dispersión de rendimiento en autopista vs rendimiento en ciudad
# con tamaño de puntos correspondiente a la cilindrada
mpg |>
  ggplot(aes(x = hwy, y = cty, size = displ)) +
  geom_point()

Código
# Gráfico de dispersión de cilindrada vs millas por galón en autopista
# + curva de tendencia
mpg |>
  ggplot(aes(x = displ, y = hwy)) +
  geom_point() +
  geom_smooth()

Código
# Gráfico de dispersión de cilindrada vs millas por galón en autopista
# coloreado por tipo de tracción
# + curva de tendencia
mpg |>
  ggplot(aes(x = displ, y = hwy, color = drv)) +
  geom_point() +
  geom_smooth()

capas adicionales

Código
mpg |>
  ggplot(aes(x = displ, y = hwy)) +
  geom_point() +
  geom_smooth(method = "lm")

Código
mpg |>
  ggplot(aes(x = displ, y = hwy, color = drv)) +
  geom_point() +
  geom_smooth()

paneles(facet)

Código
mpg |>
  ggplot(aes(x = displ, y = hwy , shape = class)) +
  geom_point() +
  facet_wrap(~ class, ncol = 2)

Código
mpg |>
  ggplot(aes(x = displ, y = hwy)) +
  geom_point() +
  facet_grid(class ~ drv)

estilos

Código
mpg |>
  ggplot(aes(x = displ, y = hwy, color = drv)) +
  geom_point() +
  geom_smooth() +
  ggtitle("Cilindrada vs rendimiento en autopista") +
  xlab("Cilindrada (l)") +
  ylab("Rendimiento en autopista (mpg)") +
  labs(subtitle = "Datos de 38 modelos de automóviles", 
       caption = "Fuente: EPA",
       color = "Tipo de tracción") +
  theme_economist()

coleres

Código
diamonds |>
  ggplot(aes(x = carat, y = price, color = clarity)) +
  geom_point() +
  ggtitle("Peso vs precio de diamantes") +
  xlab("Peso (quilates)") +
  ylab("Precio ($ EE.UU.)") +
  labs(color = "Claridad\n(I1=peor IF=mejor)") +
   scale_colour_brewer(palette = "PuBu", direction = -1) 

ploty

Código
grafico_ggplot2 <-
mpg |>
  ggplot(aes(x = displ, y = hwy, color = drv)) +
  geom_point(
    aes(
      text = paste0("Fabricante: ", manufacturer, " ", model, " ", year)
      )
    )
  
ggplotly(grafico_ggplot2, tooltip = "text") |>
  config(locale = 'es')